/**
 * 
 */
package com.hsxc.cdz.controller.wxController.thread;


import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.hsxc.cdz.controller.wxController.entity.AcessToken;
import com.hsxc.cdz.controller.wxController.entity.JsapiTicket;
import com.hsxc.cdz.controller.wxController.entity.Openid;
import com.hsxc.cdz.controller.wxController.util.Constants;
import com.hsxc.cdz.controller.wxController.util.Getvar;
import com.hsxc.cdz.controller.wxController.util.PropertiesUtil;


/** 
 * @author  wpfei
 * @version 创建时间：2016年7月4日 上午10:35:47 
 * 类说明 ：
 */

public class TokenThread implements Runnable {

	private static Logger log = LoggerFactory.getLogger(TokenThread.class);
	public static AcessToken accessToken = null;
	public static JsapiTicket jsapiticket=null;

	@Override
	public void run() {
		while (true) {
			try {
				System.out.println("进入TOKEN循环");
				accessToken = Getvar.getJSSDKAccessToken();
				if (null != accessToken) {
					//调用存储到配置文件
					//  TokenUtil.saveToken(accessToken);

					PropertiesUtil putil=new PropertiesUtil(Constants.CONF_PROPERTIES_PATH);
					putil.writeProperties("ACCESS_TOKEN", accessToken.getAccessToken());
					log.info("获取access_token成功，有效时长{}秒 token:{}");
					// 休眠7000秒
					jsapiticket=Getvar.getJSSDKTicket();
					if(null != jsapiticket){
						putil.writeProperties("JSAPI_TICKET", jsapiticket.getTicket()); 
					}
					Thread.sleep((Constants.EFFECTIVE_TIME - 200)*100);	                    
				} else {
					// 如果access_token为null，60秒后再获取
					Thread.sleep(60*1000);
				}
			} catch (InterruptedException e) {
				try {
					Thread.sleep(60 * 1000);
				} catch (InterruptedException e1) {
					log.error("{}", e1);
				}
				log.error("{}", e);
			}
		}
	}
}

